<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NVTX C API Reference: nvtxPayloadSchemaEntry_t Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">NVTX C API Reference<span id="projectnumber">&#160;v3</span>
   </div>
   <div id="projectbrief">NVIDIA Tools Extension Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle"><div class="title">nvtxPayloadSchemaEntry_t Struct Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Entry in a schema.  
 <a href="structnvtx_payload_schema_entry__t.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:ae9d93cd49514b16ffa11d4ae6bcc1da7" id="r_ae9d93cd49514b16ffa11d4ae6bcc1da7"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#ae9d93cd49514b16ffa11d4ae6bcc1da7">flags</a></td></tr>
<tr class="memdesc:ae9d93cd49514b16ffa11d4ae6bcc1da7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags to augment the basic type.  <br /></td></tr>
<tr class="separator:ae9d93cd49514b16ffa11d4ae6bcc1da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c30462422da86de1abeedcef07dd541" id="r_a4c30462422da86de1abeedcef07dd541"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#a4c30462422da86de1abeedcef07dd541">type</a></td></tr>
<tr class="memdesc:a4c30462422da86de1abeedcef07dd541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Predefined payload schema entry type or custom schema ID.  <br /></td></tr>
<tr class="separator:a4c30462422da86de1abeedcef07dd541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98a3b003669edb0daf1a2b4f9a71fa59" id="r_a98a3b003669edb0daf1a2b4f9a71fa59"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#a98a3b003669edb0daf1a2b4f9a71fa59">name</a></td></tr>
<tr class="memdesc:a98a3b003669edb0daf1a2b4f9a71fa59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name or label of the payload entry. (Optional)  <br /></td></tr>
<tr class="separator:a98a3b003669edb0daf1a2b4f9a71fa59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ed4f95ea65ef1bb2ccbdc8c7fb218e0" id="r_a6ed4f95ea65ef1bb2ccbdc8c7fb218e0"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#a6ed4f95ea65ef1bb2ccbdc8c7fb218e0">description</a></td></tr>
<tr class="memdesc:a6ed4f95ea65ef1bb2ccbdc8c7fb218e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Description of the payload entry. (Optional)  <br /></td></tr>
<tr class="separator:a6ed4f95ea65ef1bb2ccbdc8c7fb218e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a187c1291da112ded29e1275700e3dabd" id="r_a187c1291da112ded29e1275700e3dabd"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#a187c1291da112ded29e1275700e3dabd">arrayOrUnionDetail</a></td></tr>
<tr class="memdesc:a187c1291da112ded29e1275700e3dabd"><td class="mdescLeft">&#160;</td><td class="mdescRight">String length, array length or member selector for union types.  <br /></td></tr>
<tr class="separator:a187c1291da112ded29e1275700e3dabd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a550470ce91d70e4207583b5f04df7e" id="r_a6a550470ce91d70e4207583b5f04df7e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#a6a550470ce91d70e4207583b5f04df7e">offset</a></td></tr>
<tr class="memdesc:a6a550470ce91d70e4207583b5f04df7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Offset in the binary payload data (in bytes).  <br /></td></tr>
<tr class="separator:a6a550470ce91d70e4207583b5f04df7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71ddd016470557793d6776781b7c8406" id="r_a71ddd016470557793d6776781b7c8406"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structnvtx_semantics_header__t.html">nvtxSemanticsHeader_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#a71ddd016470557793d6776781b7c8406">semantics</a></td></tr>
<tr class="memdesc:a71ddd016470557793d6776781b7c8406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional semantics of the payload entry.  <br /></td></tr>
<tr class="separator:a71ddd016470557793d6776781b7c8406"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8091f5c48af11c8de5353fa4a949d84" id="r_ae8091f5c48af11c8de5353fa4a949d84"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx_payload_schema_entry__t.html#ae8091f5c48af11c8de5353fa4a949d84">reserved</a></td></tr>
<tr class="memdesc:ae8091f5c48af11c8de5353fa4a949d84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserved for future use. Do not use it!  <br /></td></tr>
<tr class="separator:ae8091f5c48af11c8de5353fa4a949d84"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Entry in a schema. </p>
<p>A payload schema consists of an array of payload schema entries. It is registered with nvtxPayloadSchemaRegister. <code>flag</code> can be set to <code>0</code> for simple values, 'type' is the only "required" field. If not set explicitly, all other fields are zero-initialized, which means that the entry has no name and the offset is determined based on self-alignment rules.</p>
<p>Example schema: <a class="el" href="structnvtx_payload_schema_entry__t.html" title="Entry in a schema.">nvtxPayloadSchemaEntry_t</a> schema[] = { {0, NVTX_EXT_PAYLOAD_TYPE_UINT8, "one byte"}, {0, NVTX_EXT_PAYLOAD_TYPE_INT32, "four bytes"} }; </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00675">675</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="a187c1291da112ded29e1275700e3dabd" name="a187c1291da112ded29e1275700e3dabd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a187c1291da112ded29e1275700e3dabd">&#9670;&#160;</a></span>arrayOrUnionDetail</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t nvtxPayloadSchemaEntry_t::arrayOrUnionDetail</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>String length, array length or member selector for union types. </p>
<p>If <a class="el" href="structnvtx_payload_schema_entry__t.html#a4c30462422da86de1abeedcef07dd541">type</a> is a C string type, this field specifies the string length.</p>
<p>If <a class="el" href="structnvtx_payload_schema_entry__t.html#ae9d93cd49514b16ffa11d4ae6bcc1da7">flags</a> specify that the entry is an array, this field specifies the array length. See <code>NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_*</code> for more details.</p>
<p>If <a class="el" href="structnvtx_payload_schema_entry__t.html#a4c30462422da86de1abeedcef07dd541">type</a> is a union with schema type NVTX_PAYLOAD_SCHEMA_TYPE_UNION (external selection of the union member), this field contains the index (starting with 0) to an entry of integral type in the same schema. The associated field value specifies the selected union member.</p>
<dl class="section note"><dt>Note</dt><dd>An array of schema type NVTX_PAYLOAD_SCHEMA_TYPE_UNION is not supported. NVTX_PAYLOAD_SCHEMA_TYPE_UNION_WITH_INTERNAL_SELECTOR can be used instead. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00724">724</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="a6ed4f95ea65ef1bb2ccbdc8c7fb218e0" name="a6ed4f95ea65ef1bb2ccbdc8c7fb218e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ed4f95ea65ef1bb2ccbdc8c7fb218e0">&#9670;&#160;</a></span>description</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* nvtxPayloadSchemaEntry_t::description</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Description of the payload entry. (Optional) </p>
<p>A more detail description of the data that is stored with this entry. </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00705">705</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="ae9d93cd49514b16ffa11d4ae6bcc1da7" name="ae9d93cd49514b16ffa11d4ae6bcc1da7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9d93cd49514b16ffa11d4ae6bcc1da7">&#9670;&#160;</a></span>flags</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t nvtxPayloadSchemaEntry_t::flags</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flags to augment the basic type. </p>
<p>This field allows additional properties of the payload entry to be specified. Valid values are <code>NVTX_PAYLOAD_ENTRY_FLAG_*</code>. </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00683">683</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="a98a3b003669edb0daf1a2b4f9a71fa59" name="a98a3b003669edb0daf1a2b4f9a71fa59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98a3b003669edb0daf1a2b4f9a71fa59">&#9670;&#160;</a></span>name</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* nvtxPayloadSchemaEntry_t::name</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Name or label of the payload entry. (Optional) </p>
<p>A meaningful name or label can help organizing and interpreting the data. </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00698">698</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="a6a550470ce91d70e4207583b5f04df7e" name="a6a550470ce91d70e4207583b5f04df7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a550470ce91d70e4207583b5f04df7e">&#9670;&#160;</a></span>offset</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t nvtxPayloadSchemaEntry_t::offset</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Offset in the binary payload data (in bytes). </p>
<p>This field specifies the byte offset from the base address of the actual binary data (blob) to the start address of the data of this entry.</p>
<p>It is recommended (but not required) to provide the offset it. Otherwise, the NVTX handler will determine the offset from natural alignment rules. In some cases, e.g. dynamic schema layouts, the offset cannot be set and has to be determined based on the data of prior entries.</p>
<p>Setting the offset can also be used to skip entries during payload parsing. </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00739">739</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="ae8091f5c48af11c8de5353fa4a949d84" name="ae8091f5c48af11c8de5353fa4a949d84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8091f5c48af11c8de5353fa4a949d84">&#9670;&#160;</a></span>reserved</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const void* nvtxPayloadSchemaEntry_t::reserved</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reserved for future use. Do not use it! </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00752">752</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="a71ddd016470557793d6776781b7c8406" name="a71ddd016470557793d6776781b7c8406"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71ddd016470557793d6776781b7c8406">&#9670;&#160;</a></span>semantics</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structnvtx_semantics_header__t.html">nvtxSemanticsHeader_t</a>* nvtxPayloadSchemaEntry_t::semantics</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Additional semantics of the payload entry. </p>
<p>The field points to the first element in a linked list, which enables multiple semantic extensions. </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00747">747</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<a id="a4c30462422da86de1abeedcef07dd541" name="a4c30462422da86de1abeedcef07dd541"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c30462422da86de1abeedcef07dd541">&#9670;&#160;</a></span>type</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t nvtxPayloadSchemaEntry_t::type</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Predefined payload schema entry type or custom schema ID. </p>
<p>Predefined types are <code>NVTX_PAYLOAD_ENTRY_TYPE_*</code>. Passing a schema ID enables nesting of schemas. </p>

<p class="definition">Definition at line <a class="el" href="nv_tools_ext_payload_8h_source.html#l00691">691</a> of file <a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="nv_tools_ext_payload_8h_source.html">nvToolsExtPayload.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
